home *** CD-ROM | disk | FTP | other *** search
/ Utilities Professional 1-1500 / Utilities Professional 1-1500 (1994)(WPD)[!].iso / 12511500 / var1370.dms / var1370.adf / Sources / ciaint1.pp / ciaint1
Text File  |  1990-09-13  |  1KB  |  82 lines

  1. ;---- CIA Interrupt ----
  2.  
  3. ciatalo = $400
  4. ciatahi = $500
  5. ciatblo = $600
  6. ciatbhi = $700
  7. ciacra  = $E00
  8. ciacrb  = $F00
  9.  
  10. SetCIAInt
  11.     MOVEQ    #0,D0
  12.     LEA    CIAAname(PC),A1
  13.     MOVE.L    4.W,A6
  14.     JSR    LVOOpenResource(A6)
  15.     MOVE.L    D0,CIAAbase
  16.     BEQ    Return1
  17.     MOVE.L    D0,A6
  18.  
  19.     MOVE.L    GfxBase,A0
  20.     MOVE.W    206(A0),D0    ; DisplayFlags
  21.     BTST    #2,D0        ; PAL?
  22.     BEQ.S    WasNTSC
  23.     MOVE.L    #1773447,D7 ; PAL
  24.     BRA.S    sciask
  25. WasNTSC    MOVE.L    #1789773,D7 ; NTSC
  26. sciask    MOVE.L    D7,TimerValue
  27.     DIVU    #125,D7 ; Default to normal 50 Hz timer
  28.  
  29.     LEA    CIAAaddress,A5
  30.     LEA    MusicIntServer(PC),A1
  31.     MOVEQ    #1,D0    ; Bit 1: Timer B
  32.     JSR    AddICRVector(A6)
  33.     MOVE.L    D0,TimerFlag
  34.     BNE.S    TryTimerA
  35.     MOVE.B    D7,ciatblo(A5)
  36.     LSR.W    #8,D7
  37.     MOVE.B    D7,ciatbhi(A5)
  38.     BSET    #0,ciacrb(A5)
  39.     BRA    SetTempo
  40.  
  41. TryTimerA
  42.     LEA    MusicIntServer(PC),A1
  43.     MOVEQ    #0,D0    ; Bit 0: Timer A
  44.     JSR    AddICRVector(A6)
  45.     TST.L    D0
  46.     BNE.S    CIAError
  47.     MOVE.B    D7,ciatalo(A5)
  48.     LSR.W    #8,D7
  49.     MOVE.B    D7,ciatahi(A5)
  50.     BSET    #0,ciacra(A5)
  51.     BRA    SetTempo
  52.  
  53. CIAError
  54.     CLR.L    CIAAbase
  55.     RTS
  56.  
  57. ResetCIAInt
  58.     MOVE.L    CIAAbase(PC),D0
  59.     BEQ    Return1
  60.     CLR.L    CIAAbase
  61.     MOVE.L    D0,A6
  62.     LEA    CIAAaddress,A5
  63.     TST.L    TimerFlag
  64.     BNE.S    ResTimerA
  65.  
  66.     BCLR    #0,ciacrb(A5)
  67.     MOVEQ    #1,D0
  68.     BRA.S    RemInt
  69.  
  70. ResTimerA
  71.     BCLR    #0,ciacra(A5)
  72.     MOVEQ    #0,D0
  73. RemInt    LEA    MusicIntServer(PC),A1
  74.     MOVEQ    #0,d0
  75.     JSR    RemICRVector(A6)
  76.     RTS
  77.  
  78. CIAAname    dc.b 'ciaa.resource',0
  79. CIAAbase    dc.l 0
  80. TimerFlag    dc.l 0
  81. TimerValue    dc.l 0
  82.